package fiuba.algo3.vehiculo;

import org.jdom2.Element;

import fiuba.algo3.obstaculo.ControlPolicial;
import fiuba.algo3.obstaculo.Obstaculo;
import fiuba.algo3.obstaculo.Piquete;
import fiuba.algo3.obstaculo.Pozo;

public class Auto implements Vehiculo {

	int cantidadDeMovimientosPorTurno;

	public Auto() {
		cantidadDeMovimientosPorTurno = 0;
	}

	public int getCantidadDeMovimientosDelTurno() {
		return cantidadDeMovimientosPorTurno;
	}

	public void setCantidadDeMovimientosDelTurno(int movimientos) {
		cantidadDeMovimientosPorTurno = movimientos;
	}

	public Camioneta4x4 cambiarAlSiguienteVehiculo() {
		Camioneta4x4 Camioneta = new Camioneta4x4();
		return Camioneta;
	}

	public void aplicarPozo(Pozo unPozo) {
		unPozo.aplicarAuto(this);
	}

	public void aplicarPiquete(Piquete unPiquete) {
		unPiquete.aplicarAuto(this);
	}

	public void aplicarControl(ControlPolicial unControl) {
		unControl.aplicarAuto(this);
	}

	public boolean puedoPasar(Obstaculo unObstaculo) {
		return unObstaculo.pasarConAuto(this);
	}

	public boolean pasarPorPozo() {
		return true;
	}

	public boolean pasarPorPiquete() {
		return false;
	}

	public boolean pasarPorControl() {
		return true;
	}
	
	public Element serializar(){
		Element nodoAuto = new Element ("Vehiculo");
		nodoAuto.setAttribute("cantidadDeMovimientosPorTurnos", Integer.toString(cantidadDeMovimientosPorTurno));
		nodoAuto.setAttribute("tipoDeVehiculo", "auto");
		return nodoAuto;		
	}
	
	public Auto(Element nodoAuto){
		this.setCantidadDeMovimientosDelTurno(Integer.parseInt(nodoAuto.getAttributeValue("cantidadDeMovimientosPorTurnos")));
	}

}